/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.easoft.code.pos.ui.leftoptions.impl;

import com.easoft.code.pos.data.pojos.Bodega;
import com.easoft.code.pos.data.pojos.Categoria;
import com.easoft.code.pos.data.pojos.Descuento;
import com.easoft.code.pos.data.pojos.Impuesto;
import com.easoft.code.pos.ui.beans.FormDataEntry;
import com.easoft.code.pos.ui.beans.FormDataEntryManager;
import com.easoft.code.pos.ui.controllers.DataEntryController;
import com.easoft.code.pos.ui.controllers.impl.BodegasControllerImpl;
import com.easoft.code.pos.ui.controllers.impl.ImpuestosControllerImpl;
import com.easoft.code.pos.ui.controllers.impl.PersonasControllerImpl;
import com.easoft.code.pos.ui.controllers.impl.ProductosControllerImpl;
import com.easoft.code.pos.ui.leftoptions.ComponentBuilder;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JPanel;

/**
 *
 * @author Eliu
 */
public class GeneralMaintenancesImpl implements ComponentBuilder {

    @Override
    public JPanel build() {
        return new FormDataEntryManager(genDataEntryList(), "maintenance-menu.png");
    }

    private List<FormDataEntry> genDataEntryList() {
        List<FormDataEntry> des = new LinkedList<>();
        des.add(new FormDataEntry(
                new ProductosControllerImpl(), "Productos"));
        des.add(new FormDataEntry(
                new BodegasControllerImpl(
                        Arrays.asList(new String[]{"Id",
                            "Nombre"}),
                        Arrays.asList(new String[]{"Id", "Nombre"}), Bodega.class), "Bodegas"));
        des.add(new FormDataEntry(
                new DataEntryController(
                        Arrays.asList(new String[]{"Id",
                            "Nombre"}),
                        Arrays.asList(new String[]{"Id", "Nombre"}), Categoria.class), "Categorias"));
        des.add(new FormDataEntry(
                new DataEntryController(
                        Arrays.asList(new String[]{"Id",
                            "Nombre", "Porcentaje", "Monto"}),
                        Arrays.asList(new String[]{"Id", "Nombre", "Porcentaje", "Monto"}), Descuento.class), "Descuentos"));
        des.add(new FormDataEntry(
                new ImpuestosControllerImpl(
                        Arrays.asList(new String[]{"Id",
                            "Nombre", "Monto", "Porcentaje"}),
                        Arrays.asList(new String[]{"Id", "Nombre", "Monto", "Porcentaje"}), Impuesto.class), "Impuestos"));
        des.add(new FormDataEntry(
                new PersonasControllerImpl(), "Personas"));
        return des;
    }

    @Override
    public String getName() {
        return "Administracion";
    }
}
